<!DOCTYPE html>
<html lang="en-US">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>面向对象 | 一只老鸟</title>
    <meta name="generator" content="VuePress 1.7.1">
    <link rel="icon" href="/img/rty-docs.ico">
    <script async="async" src="https://www.googletagmanager.com/gtag/js?id=UA-145250139-1"></script>
    <script>window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());
    
      gtag('config', 'UA-145250139-1');</script>
    <script>var _hmt = _hmt || [];
      (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?96bef00c01d8ee7ee249abc380b9e5ab";
        var s = document.getElementsByTagName("script")[0]; 
        s.parentNode.insertBefore(hm, s);
      })();</script>
    <meta name="description" content="Welcome to my docs">
    <meta name="keywords" content="jkx,晋凯旋,jkxxmd,vue,js,html,css,英文歌曲,bruno">
    
    <link rel="preload" href="/assets/css/0.styles.eb327ba5.css" as="style"><link rel="preload" href="/assets/js/app.2b0e3d52.js" as="script"><link rel="preload" href="/assets/js/2.87232f21.js" as="script"><link rel="preload" href="/assets/js/39.2cb07eac.js" as="script"><link rel="prefetch" href="/assets/js/10.1e2b3af9.js"><link rel="prefetch" href="/assets/js/11.bfd5eea1.js"><link rel="prefetch" href="/assets/js/12.11b2a8d0.js"><link rel="prefetch" href="/assets/js/13.d230b1b6.js"><link rel="prefetch" href="/assets/js/14.8208356f.js"><link rel="prefetch" href="/assets/js/15.badc1e67.js"><link rel="prefetch" href="/assets/js/16.76e6aeba.js"><link rel="prefetch" href="/assets/js/17.ea4ddef2.js"><link rel="prefetch" href="/assets/js/18.e3d36bd1.js"><link rel="prefetch" href="/assets/js/19.aa1bac84.js"><link rel="prefetch" href="/assets/js/20.838765cd.js"><link rel="prefetch" href="/assets/js/21.14466225.js"><link rel="prefetch" href="/assets/js/22.38392bba.js"><link rel="prefetch" href="/assets/js/23.71895fbc.js"><link rel="prefetch" href="/assets/js/24.766c8a49.js"><link rel="prefetch" href="/assets/js/25.6b02ff9f.js"><link rel="prefetch" href="/assets/js/26.ef22337a.js"><link rel="prefetch" href="/assets/js/27.0334ed21.js"><link rel="prefetch" href="/assets/js/28.811fb438.js"><link rel="prefetch" href="/assets/js/29.f687b8ad.js"><link rel="prefetch" href="/assets/js/3.3fc78177.js"><link rel="prefetch" href="/assets/js/30.0eef1a68.js"><link rel="prefetch" href="/assets/js/31.44dad2fc.js"><link rel="prefetch" href="/assets/js/32.959ca33d.js"><link rel="prefetch" href="/assets/js/33.d27370cb.js"><link rel="prefetch" href="/assets/js/34.73319d5f.js"><link rel="prefetch" href="/assets/js/35.09513538.js"><link rel="prefetch" href="/assets/js/36.c77663c8.js"><link rel="prefetch" href="/assets/js/37.89852ede.js"><link rel="prefetch" href="/assets/js/38.a9026d97.js"><link rel="prefetch" href="/assets/js/4.50419328.js"><link rel="prefetch" href="/assets/js/40.7694c8be.js"><link rel="prefetch" href="/assets/js/41.0b071795.js"><link rel="prefetch" href="/assets/js/42.731a77fd.js"><link rel="prefetch" href="/assets/js/43.e340c04a.js"><link rel="prefetch" href="/assets/js/44.32723933.js"><link rel="prefetch" href="/assets/js/45.fddbc294.js"><link rel="prefetch" href="/assets/js/46.7227ca9a.js"><link rel="prefetch" href="/assets/js/47.e445b894.js"><link rel="prefetch" href="/assets/js/48.22f08eaa.js"><link rel="prefetch" href="/assets/js/49.1ee7be95.js"><link rel="prefetch" href="/assets/js/5.f4c7dd9b.js"><link rel="prefetch" href="/assets/js/50.620525ff.js"><link rel="prefetch" href="/assets/js/51.23ef9c37.js"><link rel="prefetch" href="/assets/js/52.ab599220.js"><link rel="prefetch" href="/assets/js/53.6f0a5a12.js"><link rel="prefetch" href="/assets/js/54.0af9ce80.js"><link rel="prefetch" href="/assets/js/55.9a619ce4.js"><link rel="prefetch" href="/assets/js/56.d3eb58e2.js"><link rel="prefetch" href="/assets/js/57.cec694aa.js"><link rel="prefetch" href="/assets/js/58.215ff512.js"><link rel="prefetch" href="/assets/js/59.67b4a2d9.js"><link rel="prefetch" href="/assets/js/6.35564b30.js"><link rel="prefetch" href="/assets/js/60.10fa328d.js"><link rel="prefetch" href="/assets/js/61.eb384a7b.js"><link rel="prefetch" href="/assets/js/62.21995735.js"><link rel="prefetch" href="/assets/js/63.d3376937.js"><link rel="prefetch" href="/assets/js/64.9dc17e46.js"><link rel="prefetch" href="/assets/js/65.faaf4be5.js"><link rel="prefetch" href="/assets/js/66.82d4fd2e.js"><link rel="prefetch" href="/assets/js/67.766e8bbb.js"><link rel="prefetch" href="/assets/js/68.e00a5e5f.js"><link rel="prefetch" href="/assets/js/69.0f9198d3.js"><link rel="prefetch" href="/assets/js/7.826495ef.js"><link rel="prefetch" href="/assets/js/70.05ef2cdd.js"><link rel="prefetch" href="/assets/js/71.0da0e95b.js"><link rel="prefetch" href="/assets/js/72.fd1cda42.js"><link rel="prefetch" href="/assets/js/73.907aa3c6.js"><link rel="prefetch" href="/assets/js/74.dec02a91.js"><link rel="prefetch" href="/assets/js/75.8610ce53.js"><link rel="prefetch" href="/assets/js/76.db9000c6.js"><link rel="prefetch" href="/assets/js/77.fa0311a2.js"><link rel="prefetch" href="/assets/js/78.33ae2bd0.js"><link rel="prefetch" href="/assets/js/79.879fa638.js"><link rel="prefetch" href="/assets/js/8.7a30ba0c.js"><link rel="prefetch" href="/assets/js/80.898b981f.js"><link rel="prefetch" href="/assets/js/81.b606e1f8.js"><link rel="prefetch" href="/assets/js/82.5006eb1e.js"><link rel="prefetch" href="/assets/js/83.604f41d2.js"><link rel="prefetch" href="/assets/js/84.2e649063.js"><link rel="prefetch" href="/assets/js/85.50f34442.js"><link rel="prefetch" href="/assets/js/86.aee7b865.js"><link rel="prefetch" href="/assets/js/87.9b812977.js"><link rel="prefetch" href="/assets/js/88.52e08a6c.js"><link rel="prefetch" href="/assets/js/9.7b6af510.js">
    <link rel="stylesheet" href="/assets/css/0.styles.eb327ba5.css">
  </head>
  <body>
    <div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/" class="home-link router-link-active"><!----> <span class="site-name">一只老鸟</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/" class="nav-link">
  主页
</a></div><div class="nav-item"><a href="/components/introduction.html" class="nav-link">
  VUE
</a></div><div class="nav-item"><a href="/english/introduction.html" class="nav-link">
  Javascript
</a></div><div class="nav-item"><a href="/music/introduction.html" class="nav-link">
  Html5
</a></div><div class="nav-item"><a href="/oral/introduction.html" class="nav-link">
  CSS
</a></div> <a href="https://github.com/jgsrty/jgsrty.github.docs" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitHub
    <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/" class="nav-link">
  主页
</a></div><div class="nav-item"><a href="/components/introduction.html" class="nav-link">
  VUE
</a></div><div class="nav-item"><a href="/english/introduction.html" class="nav-link">
  Javascript
</a></div><div class="nav-item"><a href="/music/introduction.html" class="nav-link">
  Html5
</a></div><div class="nav-item"><a href="/oral/introduction.html" class="nav-link">
  CSS
</a></div> <a href="https://github.com/jgsrty/jgsrty.github.docs" target="_blank" rel="noopener noreferrer" class="repo-link">
    GitHub
    <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav>  <ul class="sidebar-links"><li><a href="/english/introduction.html" class="sidebar-link">导读</a></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>2019十二月(December)</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/english/2019/2019-December/What Is a Calorie.html" class="sidebar-link">对象：{ }</a></li><li><a href="/english/2019/2019-December/Why Is Water so Important.html" class="sidebar-link">水为何如此重要</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019十一月(November)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019十月(October)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019九月(September)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019八月(August)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019七月(July)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019六月(June)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019年五月(May)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019年四月(April)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019年三月(March)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019年二月(Feburary)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2019年一月(January)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2018年十二月(December)</span> <span class="arrow right"></span></p> <!----></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading open"><span>2018年十一月(November)</span> <span class="arrow down"></span></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/english/2018/2018-November/Seize the Day.html" class="sidebar-link">js组成</a></li><li><a href="/english/2018/2018-November/The Religion of a Doctor.html" class="sidebar-link">Document Object Model DOM</a></li><li><a href="/english/2018/2018-November/World Inequality and Complexity 1.html" class="active sidebar-link">面向对象</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#arguments-类数组-只能在函数中使用" class="sidebar-link">arguments 类数组 只能在函数中使用</a></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#原型检测" class="sidebar-link">原型检测：</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#面向对象的一特性-封装" class="sidebar-link">面向对象的一特性：封装</a></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#面向对象的一特性-多态-同一函数多种形态。" class="sidebar-link">面向对象的一特性：多态 同一函数多种形态。</a></li></ul></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#原型链" class="sidebar-link">原型链：</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#proto-作用就是指向prototype-原型对象-。" class="sidebar-link">_proto_:作用就是指向prototype(原型对象)。</a></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#面向对象的继承" class="sidebar-link">面向对象的继承</a></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#构造函数中实现继承" class="sidebar-link">构造函数中实现继承 ：</a></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#原型继承" class="sidebar-link">原型继承：</a></li></ul></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#垃圾回收机制" class="sidebar-link">垃圾回收机制：</a></li><li class="sidebar-sub-header"><a href="/english/2018/2018-November/World Inequality and Complexity 1.html#try-不能单独使用的-结合catch或者是finally" class="sidebar-link">try: 不能单独使用的;结合catch或者是finally</a></li></ul></li><li><a href="/english/2018/2018-November/World Inequality and Complexity 2.html" class="sidebar-link">js最全面的数组操作合集</a></li></ul></section></li><li><section class="sidebar-group collapsable depth-0"><p class="sidebar-heading"><span>2018年十月(October)</span> <span class="arrow right"></span></p> <!----></section></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="面向对象"><a href="#面向对象" class="header-anchor">#</a> 面向对象</h1> <p>字符串.substring（） 方法返回字符串的子
字符串。
substring(int beginIndex, int endIndex)
beginIndex -- 起始索引（包括）, 索引从 0 开始。
endIndex -- 结束索引（不包括）。
字符串.substring（0,1）返回第一个子字符串
字符串.substring（0,1）+&quot;...&quot;返回第一个子字符串，
后面的在拼串
// function person(name,age){
// this.name=name;
// this.age=age;
// }
// console.log(person(&quot;A&quot;,20)) //返回undefined
/*函数返回值:函数return后面的内容.
function abc(a,b,c,d){
//arguments 类数组，实参列表。
}
abc(1,2,3,4)</p> <h2 id="arguments-类数组-只能在函数中使用"><a href="#arguments-类数组-只能在函数中使用" class="header-anchor">#</a> arguments 类数组 只能在函数中使用</h2> <p>arguments 实参列表
arguments 对象的函数名，通常用在递归调用时，函数名发生改变，
无需改变递归调用的函数名
Arguments.callee是Arguments所在的函数
函数.caller 调用此函数的函数。
【】.reduce.call(arguments,function( ){ }) 将reduce给
arguments使用</p> <h2 id="原型检测"><a href="#原型检测" class="header-anchor">#</a> 原型检测：</h2> <div class="language- extra-class"><pre><code>Array.isArray() 检测是不是数组
isNaN 检测是不是NaN
对象 instanceof 构造函数 检测构造函数在不在对
象的原型链上
对象.hasOwnProperty（’属性‘） 检测是不是其中的属性
if(xx in xx){}会找原型链上的属性
对象原型.isPrototypeof(m)； 检测对象是否在m的原型
链上，只要是原型链上的就是true。
实例对象、字面量对象都自动继承了Object.prototype的属性和方
法。
(对象 instanceof 构造函数)——
检测对象是否是构造函数的实例
对象。
要检测的（函数或对
象）.hasOwnProperty(&quot;属性&quot;);
检测是否有这个属性（私有属性
也不现示），
Own 构造函数里this.属性。它自身的属性 并且__proto__也不显示
</code></pre></div><h3 id="面向对象的一特性-封装"><a href="#面向对象的一特性-封装" class="header-anchor">#</a> 面向对象的一特性：封装</h3> <div class="language- extra-class"><pre><code>封装的目的是对私有属性和方法的保护，外部无法访问，无法修改。
私有方法里，想调用公有属性或者公有方法的话，会导致this指向改变，
所以通过调用公有属性之前，将this赋给变量。 就是在私有属性用公有属性
的时候先把var a=this 在私有属性里面用 a.属性就可以找到公有的属性
私有属性就是在封装中 var age=3
私有方法 function fn(){} || var
fn=function(){}
私有属性和方法外部无法访问 只能在函数内部访问
静态属性就是在封装中 函数名.age=3
静态方法 函数名.function fn()
{}
局部变量，私有属性||私有方法（只有函数自己内部才能访问）
全局变量，共有属性||方法
就是把需要提供给用户的功能暴露出来，其他的不对用户
开放。
</code></pre></div><h3 id="面向对象的一特性-多态-同一函数多种形态。"><a href="#面向对象的一特性-多态-同一函数多种形态。" class="header-anchor">#</a> 面向对象的一特性：多态 同一函数多种形态。</h3> <div class="language- extra-class"><pre><code>以传参的形式影响运行机制,使用if分支语气来定义条件 实现多种
形态。
```
function（）{
if（）{ }
else{ }
}```
1、对象是由构造函数创建的：
new 构造函数
{ }
var obj={a:15}; （语法糖 便捷方式 ）
等价于 var obj=new Object();obj.a=15;
function Object(){}
2、函数是一种对象,有prototype;
构造函数.prototype={constructor:function(){} }
构造函数.prototype.construction=构造函数
函数有prototype属性 对象有constructor
构造函数的constructor就是function Function(){};
实例的constructor就是创建他的构造函数；
实例的prototype=undefined；
function ab(){}
等价于var ab=new Function();
new Function(&quot;a&quot;,&quot;alert(&quot;x&quot;)&quot;);
function(&quot;a&quot;){&quot;alert(&quot;x&quot;)&quot;};
普通函数：
this指向的时window;
默认返回时undefined 因为没有 return
调用时，没有new；
首字母小写
构造函数：
this指向实例
调用时用new调用
默认返回值是实例本身。
有 return的话 ：值类型是无效的 引用类型生效。
首字母大写
new到底生成了什么：
生成一个{ }；
改变了this的指向 从window变成了{}； 参数.call( {}名
)
属性、属性值、方法都存入了{}
生成了一个隐含的指向_proto_，指向了prototype
{}.__proto__=参数.prototype
return { }
new生成的叫做实例对象，包含了构造函数和原型对象的属性和方法。
面向对象编程：Object Oriented Prongramming
分解了功能，对面向过程的封装。
对外开放的一些属性和方法，不需要考虑实现过程。
构造函数：function(){ this }
原型对象：prototype(对象) 存储公共的属性和方法。
封装函数放在prototype里面 然后调用。
面向过程编程：
原型对象是函数特有的。
普通函数和构造函数都有原型对象（prototype）。 函数都有原型
对象。
new实例对象没有原型对象（prototype）。 实例对象
没有原型对象。
————实例对象的constructor属性 就是创建它的构造函数
————构造函数的原型对象的constructor是构造函数本身。
.prototype.constructor
constructor 构造函数
对象：{a:1,b:2} 键值对
a:属性 b:属性值
访问属性的时候，用ojb.a,obj[&quot;a&quot;]
函数在对象中的时候 叫方法
属性（obj.a）+方法（obj.d());
对象:
本地对象：Array String Object Function Date Number
Boolean Event
全局对象：Math
宿主对象：BOM,DOM;
var m=&quot;height&quot;;
getComputedStyle(li)[m];//获取属性 不是标准属性用【】
getComputedStyle(li)[&quot;height&quot;];
getComputedStyle(li).height;
*/
/*
</code></pre></div><h2 id="原型链"><a href="#原型链" class="header-anchor">#</a> 原型链：</h2> <h3 id="proto-作用就是指向prototype-原型对象-。"><a href="#proto-作用就是指向prototype-原型对象-。" class="header-anchor">#</a> <strong>proto</strong>:作用就是指向prototype(原型对象)。</h3> <p>找属性从构造函数开始，没有就去原型对象去找，.....最高到
Object.prototype;
object.属性就找不到 这属于静态属性||静态方法；最高只能找到
object的原型上的属性
*/</p> <h3 id="面向对象的继承"><a href="#面向对象的继承" class="header-anchor">#</a> 面向对象的继承</h3> <p>继承 在现有类 A的基础上构建了新的类 B ，那么A：父类，超类，
基类；B：子类，派生类；
多个类存在共同的属性和方法，那么可以把这些相同的属性和方法提
到新的类中，让这些类去继承。
父类，通常不用设置太多，只需通用的；
子类，能访问父类的私有属性和方法，又有自己的特征，更具体一
些。
优点：
简化代码，方便统一管理</p> <h3 id="构造函数中实现继承"><a href="#构造函数中实现继承" class="header-anchor">#</a> 构造函数中实现继承 ：</h3> <p>实际上改变了父类里面的this指向 指向子类的实例。
子类构造函数中：
父类.call(this,属性，属性）|| 父类.apply(this,[属性，属性])
或者 this.arguments
优点：可以传参数
缺点：不能继承父类prototype上的属性和方法。</p> <h3 id="原型继承"><a href="#原型继承" class="header-anchor">#</a> 原型继承：</h3> <p>将子类的原型=父类的原型 Dog.prototype=new Animal()
缺点：1、子类生成时无法传递所有的参数。
2、构造函数的属性值如果是引用传递，实例更改属性之后会被
其他实例共享。（原因：属性在prototype上，prototype是引用传递
的 所有属性就是所有实例共享的了）
3、子类实例的构造函数变成了父类原型的构造函数，如果需要
使用构造函数，重新制定子类原型的构造 函数。
缺点：父类要执行两次；因为执行了两次构造函数；
第一种方法
就等于让Dog.prototype=new Animal();
第二种方法
obj.prototype=Object.create(对象A.prototype)；
//新生成了一个对象。给obj一个__proto__属性，指向对象A；
var obj={h:300};
m.prototype=Object.create(obj.prototype) 就可以找到m.h了
这样的话父类只执行一次
实例在new 函数里找属性
没有则去实例.<em>proto</em>(new 函数.prototype)里找
没有则去实例.<em>proto</em>.<em>proto</em>(Object.prototype)里找
没有则去实
例.<em>proto</em>.<em>proto</em>.<em>proto</em>(Object.prototype.<em>proto</em> = = =
null)里面找
function newCreate（obj）{
var fn=function(){};
fn.prototype=obj;
var new Obj=new fn();
return new Obj
}</p> <h2 id="垃圾回收机制"><a href="#垃圾回收机制" class="header-anchor">#</a> 垃圾回收机制：</h2> <p>回收变量；全局变量不回收。
封装、继承、多态
多态：
方法重载（一般通过一个参数）然后创建一个prototype属性 通
过这参数 判断来修改其余属性的值。
比方说 当a=1时 他的name:&quot;11&quot;; a=2时
name：&quot;22&quot;
方法覆盖 不用原型上的方法 用其自身的方法。
闭包：
闭包:是一个函数,应用了外层元素的变量或参数,一旦在外层函数的外
部被调用它产行了闭包;
必要条件：
1、用到了外层函数的参数或变量。
2、外部调用。
特点：
1、外层函数的变量一直存在于内存中（原因是上下
文环境没销毁）;
优点:能获取和设置函数(构造函数)体内的变量值。
特殊的是内嵌函数不一定属于闭包;
闭包一定是内嵌函数;
执行上下文特点：
1.单线程，在主进程上运行
2.同步执行，从上往下按顺序执行
3.全局上下文只有一个，浏览器关闭时会被弹出栈
4.函数的执行上下文没有数目限制
5.函数每被调用一次，都会产生一个新的执行上下文环境
同步：在同一时间，你只能做一件事情，即使这件事情会花费很长时
间，但依旧需要你坚守在那里直到事情处理完毕；
异步：你在做一件事情时，因为这件事情会花费很长时间，在这等待
过程中你可以先去处理其他事情，等这件事轮到你的时候再过来处理
她即可。</p> <h2 id="try-不能单独使用的-结合catch或者是finally"><a href="#try-不能单独使用的-结合catch或者是finally" class="header-anchor">#</a> try: 不能单独使用的;结合catch或者是finally</h2> <p>代码块里放的是有问题的,或者是不确定是否有问题的代码。
处理能力低。
catch: 出错之后处理的语句;
throw new Error()之后 阻止了后面的代码执行（try
catch finally之后的代码）
在catch{throw new Error()之后的语句都不执行} 执行
finally
finally: 无论是否有错误，都会执行。
try{//尝试
//要测试的代码
var a=2;
console.log(b);
console.log(a);
}catch(e){ //抓捕 只在上面有错误的时候才执行.
//处理错误信息
//1、 throw new Error(&quot;b没有定义&quot;)
//2 catch（）参数
//3 finally
// console.log(Object.prototype.toString.call(e))
}finally{
//无论错误都执行
console.log(&quot;aa&quot;)
}
内置对象扩展：
原型扩展 Array.prototype.fn
自身扩展 Array.fn
Object.defineProperty(obj（自身名字）,key（添加的属性
名字）,{value:__})</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/jgsrty/jgsrty.github.docs/edit/master/docs/english/2018/2018-November/World Inequality and Complexity 1.md" target="_blank" rel="noopener noreferrer">Edit this page</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <div class="last-updated"><span class="prefix">Last Updated:</span> <span class="time">12/23/2020, 4:59:13 PM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
      ←
      <a href="/english/2018/2018-November/The Religion of a Doctor.html" class="prev">
        Document Object Model DOM
      </a></span> <span class="next"><a href="/english/2018/2018-November/World Inequality and Complexity 2.html">
        js最全面的数组操作合集
      </a>
      →
    </span></p></div> </main></div><div class="global-ui"></div></div>
    <script src="/assets/js/app.2b0e3d52.js" defer></script><script src="/assets/js/2.87232f21.js" defer></script><script src="/assets/js/39.2cb07eac.js" defer></script>
  </body>
</html>
